package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Teacher;

public class OtherTeacherDao implements BaseTeacherDao {
    //定义一个长度为5的数组，作为整个系统的容器
    private Teacher[] teas = new Teacher[5];

    //添加静态代码块
  /*  static{
        Teacher t1=new Teacher("heima006","张老师","45","1974-3-12");
        Teacher t2=new Teacher("heima002","吴老师","41","1977-2-22");
        Teacher t3=new Teacher("heima004","金正恩","39","1980-6-21");

        }*/


    public boolean addTeacher(Teacher tea) {
        //添加老师到数组
        //定义变量为-1，假设数组已经存满，没有null值
        int index = -1;
        //遍历数组中取出每一个元素，判断是否时null
        for (int i = 0; i < teas.length; i++) {
            //定义老师类变量接收数组中的每一位老师
            Teacher teacher = teas[i];
            //如果为null，让index记录当前索引位置，并break结束循环
            if (teacher == null) {
                index = i;
                break;
            }
        }
        //返回是否添加成功的boolean类型状态
        if (index == -1) {
            return false;
        } else {
            teas[index] = tea;
            return true;
        }

    }

    //根据工号id查找对应的老师对象在数组容器中的索引位置
    public int getIndex(String id) {
        //先假设要查找的学号不存在，让index先记录-1
        int index = -1;
        //遍历数组容器
        for (int i = 0; i < teas.length; i++) {
            //拿到每一位老师对象
            Teacher tea = teas[i];
            //判断当前工号id在数组容器中不为空和与容器中对应的老师对象是否相同
            if (teas != null && tea.getId().equals(id)) {
                //相同，则说明该id在容器中存在并且与容器中索引位置的老师对象进行对比结果相同
                //让index记录当前索引位置然后结束遍历
                index = i;
                break;
            }
        }
        return index;
    }


    //库管的查看方法
    public Teacher[] findAllTeacher() {
        return teas;
    }

    //库管的删除方法
    public void deleteTeacherById(String delId) {
        //查找要删除的学生id在数组容器的索引位置
        int index = getIndex(delId);
        //将该元素的索引位置用null覆盖代表删除的效果
        teas[index] = null;
    }
    //库管的修改功能
    public void updateTeacherById(String updateId, Teacher newTea) {
            //找到当前要修改的工号对应的老师对象在数组容器中的索引位置
        int index=getIndex(updateId);
        //将用户输入的新的老师对象信息去覆盖掉对应索引位置的旧对象信息，从而达到修改的效果
                teas[index]=newTea;
    }
}
